#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题: 字符串转换为日期
问题: 你的应用程序接受字符串格式的输入，但是你想将它们转换为 datetime 对象以便在上面执行非字符串操作。
提示 : 
    1.  strptime() 的性能要比你想象中的差很多
"""

from datetime import datetime

def recipe1():
    text = '2012-09-20'
    y = datetime.strptime(text, '%Y-%m-%d')
    print(f"{y = }")
    print(f"{datetime.now() - y = }")

    print(f"{parse_ymd(text) = }")

def recipe2():
    """格式化为漂亮易读形式后放在自动生成的信件或者报告的顶部"""
    print(f"{datetime.strftime(datetime.now(), '%A %B %d, %Y') = }")

def parse_ymd(s):
    """这个函数比 datetime.strptime() 快7倍多"""
    year_s, mon_s, day_s = s.split('-')
    return datetime(int(year_s), int(mon_s), int(day_s))

def main():
    print('recipe1'.center(20, '*'))
    recipe1() 
    print('recipe2'.center(20, '*'))
    recipe2() 

if __name__ == '__main__':
    main()      